2022-08 Roadmap to Milestone 1
2022-09-13 Update
All items from the brainstorming were converted to GitHub issues. Going forward, we will track the roadmap on GitHub. See Station Milestone M0.5:
Brainstorming on 2022-08-19
- #118 Consent with telemetry & error reporting
- Smallprint on the website before download
- A new screen in the app
- #80 Usage analytics:
- consent screen
- infra integration
- events: one for each step in the onboarding flow: a user starting the app, the user closing the app at “Enter FIL” screen
- Telemetry
- #78 Sentry for recording errors. The app needs to ask the user for consent.
- #79 Infra for collecting metrics (prior art: IPFS Desktop)
Metrics:
- Machine spec (are people comfortable sharing that?)
- CPU power, Memory size, Storage size,
- Network speed test against an L1 node
- Number of jobs processed per hour
- Number of stations up & running
- Machine spec (are people comfortable sharing that?)
- #84 Saturn L2 Node
- Stress testing
- Code review (nice to have)
- Instrumentation & telemetry
- We need to mention this in Station’s Consent screen
- Setup CI for L2-node
- L1-node#48: L1 ↔ L2 integration deployed to testnet
- Station ↔ L2 integration
- L2 reports events - connected, disconnected - see https://github.com/filecoin-saturn/L2-node/pull/62
- #81 expose stats & events for WebUI
- Station backend collects stats & events and exposes them for consumption by front-end
- #119 Redesigned Station UI
- Outer shell - top navbar, background, navbar, etc.
- Onboarding
- Intro screens
- Ask for consent to storing data, or quit app
- Connect FIL address
- FIL address management - show in the UI, UI action to disconnect, reconnect, and change the address.
- “My Station” dashboard
- #120 Branding & visual identity
- App logo
- Tray icon
- DMG background
- #121 Website
- Download Station for each OS
- FAQ
- What data is stored?
- Who connects to me?
- #108 Testing
- Mac
- Windows
- Linux
- UX testing
- Misc
Out of scope
- Payments
- Log ingestion
- Bandwidth limiting
- Automated testing for the onboarding flow inside the app
OLD CONTENT - NO LONGER RELEVANT
The road to v1.0 (MVP)
We want to grow the user base as fast as possible. How can we make Station an attractive offering?
- Modules are bundled as part of the Electron app. There is no install/uninstall functionality, this part will be managed automatically by the Station.
- Modules are running in a privileged mode with full access to the user’s operating system resources. This is acceptable because the initial modules are developed either by ProtocolLabs or a trusted party.
The Next Milestone
A high-level collection of ideas and tasks to pick from. We will create GH issues after we get a consensus about the high-level direction & scope.
DONE
- Saturn module
- Configure ROOT_DIR env var for Saturn L2 node.
Store the cache in the right location -%LOCALAPPDATA%on Windows,XDG_CACHE_HOMEon Linux,~/Library/Caches/on macOS. See https://github.com/ipfs/ipfs-desktop/issues/1656, https://github.com/electron/electron/issues/8124, https://github.com/electron/electron/issues/1404
GH issue: https://github.com/filecoin-project/filecoin-station/issues/56#issuecomment-1196476975
- Configure ROOT_DIR env var for Saturn L2 node.
MUST HAVE
- Saturn module
- Update to the latest Saturn version
- L1→L2 cache miss
- Branding & visual identity
- App logo
- Tray icon
- Website
- Download Station for each OS
- FAQ
- What data is stored?
- Who connects to me?
- Redesigned Station UI
Work with the Subvisual team to convert their Figma wireframes into Station implementation.
- Outer shell - top navbar, background, navbar, etc.
- Onboarding
- Intro screens
- Ask for consent to storing data, or quit app
- Connect FIL address
- FIL address management - show in the UI, UI action to disconnect, reconnect, and change the address.
- “My Station” dashboard
My Station vs Discovery view
Install the first module (Saturn L2)
Configure Saturn L2
Uninstall module
Start / stop module
- Activity log
- Events like “Saturn connected to Orchestrator”, “Saturn connected to X L1 nodes and awaiting jobs”, and “Saturn node cannot reach the network”.
- Events to report the number of Saturn jobs handled in the morning/afternoon/evening/etc.
- Events for FIL rewards paid out
- Data for the dashboard
- The total amount of FIL earned (by this Station?)
- The total number of jobs handled (by this Station?)
Module ConfigurationSaturn L2: add config schema file
Station build: extract config schema file from Saturn L2
Station backend: persist (save, load) config file for Saturn module
Station backend: send config via env vars to Saturn L2 process
Station frontend: edit Saturn config
- Testing
- Mac
- Windows
- Linux
SHOULD HAVE (can be deferred to the next milestone)
- Dashboard
- Metrics (now-ish + 30d)
- Load
- Storage
- Bandwidth
- Earnings
- Request count
- Event log (live)
- Metrics (now-ish + 30d)
Global configurationMax load
Max storage
Max bandwidth
Max request count (?)